/**
 * zmn部门模块-部门列表
 * 文件命名格式：zmn.模块名称.表名称.功能.js
 * @author heguanghua
 * @since 2020/04/24 18:57
 */
let editObj = null, ptable = null, treeGrid = null, tableId = 'zmn-table', layer = null;
let baseUrl;
layui.define(['form', 'table', 'zmnApp', 'treeGrid'], function (exports) {
    let $ = layui.jquery;
    let form = layui.form;
    let layer = layui.layer;
    let treeGrid = layui.treeGrid;
    let zmnApp = layui.zmnApp;
    baseUrl = zmnApp.SYS_BASE_URL;

    ptable = treeGrid.render({
        id: tableId,
        elem: '#' + tableId,
        url: zmnApp.SYS_BASE_URL + '/dept/ajaxTree.action',
        where: {'orgId': json.orgId, 'keyword': json.vo.keyword, 'status': json.vo.status},
        cellMinWidth: 100,
        idField: 'deptId',                  //必須字段
        treeId: 'deptId',                   //树形id字段名称
        treeUpId: 'parentId',               //树形父id字段名称
        treeShowName: 'deptName',           //以树形式显示的字段
        heightRemove: [".dHead", 160],      //不计算的高度,表格设定的是固定高度，此项不生效
        height: 'full-85',
        isFilter: false,
        iconOpen: false,                    //是否显示图标【默认显示】
        isOpenDefault: true,                //节点默认是展开还是折叠【默认展开】
        loading: true,
        method: 'POST',
        isPage: false,
        cols: [[
            {type: 'checkbox', sort: false},
            {field: 'sort', title: '排序', width: 60, align: 'center', sort: false, edit: json.hasModifySort ? 'text' : ''},
            {field: 'deptId', title: '部门ID', width: 80, align: 'center', sort: false},
            {field: 'deptName', title: '部门名称', minWidth: 240, sort: false, templet:  function(d) {
                    return json.hasDetail ? zmnTpl.linkTpl(d.deptName, zmnApp.SYS_BASE_URL + '/dept/detail.action?deptId=', d.deptId) : d.deptName;
                }},
            {field: 'orgId', title: '组织ID', width: 100, align: 'center', sort: false},
            {field: 'status', title: '状态', width: 80, align: 'center', sort: false, templet: function(d) {
                    return zmnTpl.statusTpl(d.status);
                }},
            {field: '操作', title: '操作', width: 210, align: 'left', templet : function(d) {
                    let html = '';
                    if (d.level > 0) {
                        html += json.hasDetail ? '<a lay-href="' + zmnApp.SYS_BASE_URL + '/dept/detail.action?deptId=' + d.deptId + '" class="layui-btn layui-btn-xs layui-btn-primary" lay-text="部门信息"><i class="layui-icon">&#xe642;</i>详情</a>' : '';
                        html += json.hasBindBeisen ? '<button onclick="toSetBeisenId(' + d.deptId + ')" class="layui-btn layui-btn-xs layui-btn-primary">绑定北森</button>' : '';
                    }

                    // 不限制新增部门层级
                    html += json.hasAddEdit ? '<a lay-href="' + zmnApp.SYS_BASE_URL + '/dept/detail.action?parentId=' + d.deptId + '" class="layui-btn layui-btn-xs layui-btn-primary" lay-text="新增部门">+子部门</a>' : '';

                    return html;
                }}
        ]],
        parseData: function (res) {     // 数据加载后回调
            res.data.forEach(function(item) {
                if(item.level > 1) {
                    item.lay_is_open = false;
                }
            });
            return { "message": res.message, "code": res.status,  "data": res.data, "count": 0, "is": true, "tip": "OK"};
        }
    });

    // 修改排序
    if(json.hasModifySort) {
        treeGrid.on("edit(zmn-table)", function (obj) {
            let url = zmnApp.SYS_BASE_URL + "/dept/modify/modifySort.action";
            zmnPage.laySort(obj, url, obj.data.deptId);
        });
    }

    // 启用/停用（批量）
    setStatus = function(status) {
        let $ = layui.$;
        let checkStatus = treeGrid.checkStatus('zmn-table');
        let ids = new Array();
        checkStatus.data.forEach(function (row, i) {
            ids.push(row['deptId']);
        });
        if(ids == null || ids.length == 0) {
            layui.layer.msg("请选择要更改状态的部门");
            return;
        }
        zmnPage.ajaxSimple(zmnApp.SYS_BASE_URL +"/dept/modify/modifyStatus.action", { ids: ids.join(","), status: status }, 1000);
    }

    //查询条件重置
    form.on('submit(zmn-form-reset)', function (obj) {
        form.val("zmn-form-filter", {
            "keyword": ""
            ,"status": ""
        });
        return false;
    });

    //对外暴露的接口
    exports('dept_tree', {});
});

function toSetBeisenId(deptId) {
    zmnLayUtil.openIframeCustom(layui.layer, baseUrl + "/dept/toSetBeisenId.action?deptId=" + deptId, {
        area: ['500px', '300px'],
        title: "绑定北森",
        shade: 0.8
    });
}